//            localStorage（本地存储）
// setItem(keyname, value)方法	 添加键和值，如果对应的值存在，则更新该键对应的值。(存)
// getItem(keyname)方法	 返回指定键的值  (取)
// removeItem(keyname)方法	 移除键
// clear()方法 	清除存储对象中所有的键

//函数封装本地存储的各种方法

//添加键和值(历史记录)
// export const setItem = (key, value) => {
//     localStorage.setItem(key, JSON.stringify(value))
// }
// //获取返回指定键的值(历史记录)
// export const getItem = (key) => {
//     let val = localStorage.getItem(key) ? localStorage.getItem(key) : null
//     if (val) {
//         return JSON.parse(localStorage.getItem(key))
//     } else {
//         return null
//     }
// }
// //移除某个键(条历史记录)
// export const removeItem = (key) => {
//     localStorage.removeItem(key)
// }
// //清除存储对象中所有的键历史记录
// export const clear = () => {
//     localStorage.clear()
// }


//class类封装本地存储的各种方法
class Storage {
    setItem(key, value) {
        localStorage.setItem(key, JSON.stringify(value))
    }
    getItem(key) {
        let val = localStorage.getItem(key) ? localStorage.getItem(key) : null
        if (val) {
            return JSON.parse(localStorage.getItem(key))
        } else {
            return null
        }
    }
    removeItem(key) {
        localStorage.removeItem(key)
    }
    clear() {
        localStorage.clear()
    }
}
//输出暴露出去
// export default new Storage();
export const $Storage = new Storage();